import axios from 'axios'
import { useUserStore } from '@/stores/user'

// 创建 axios 实例
const service = axios.create({
  // 默认地址请求地址，可在 .env.** 文件中修改
  baseURL: import.meta.env.VITE_APP_API,
  // 设置超时时间
  timeout: 60000,
  // 跨域时候允许携带凭证
  withCredentials: true,
  // 请求头
  headers: { 'Content-Type': 'application/json;charset=utf-8' },
})

// 请求拦截器
service.interceptors.request.use(
  (config) => {
    const userStore = useUserStore()

    // 携带 token
    config.headers.Authorization = 'Bearer ' + userStore.token

    // console.log('请求拦截器 config:>> ', config)

    return config
  },
  (error) => {
    // console.log('请求拦截器 error:>> ', error)

    return Promise.reject(error)
  }
)

// 响应拦截器
service.interceptors.response.use(
  (response) => {
    const { data, config } = response

    // console.log('响应拦截器 response:>> ', response)

    return data
  },
  (error) => {
    const { response } = error

    // console.log('响应拦截器 error:>> ', error)

    return Promise.reject(error)
  }
)

// 导出 axios 实例
export default service
